#pragma once

#include "Bank_t.h"
#include <iostream>
#include <string>
using namespace std;

class AccountImpl {
public:
	virtual void Update(Bank_t* chngBank, const string& message) {
		if (chngBank == m_bank) {
			cout << message << endl;
		}
	}
	
	virtual ~AccountImpl(){};

	int getPercent() const { return m_percent; }
	int getDate() const { return m_date; }
	int getPeriod() const { return m_period; }
	virtual int getAccountType() const = 0;

	AccountImpl(Bank_t* b, int percent, int date, int period) {
		m_percent = percent;
		m_date = date;
		m_period = period;
		m_bank = b;
	}

protected:
	int m_percent;
	int m_date; 
	int m_period;
	Bank_t* m_bank;
};